#pragma once
#include "xKernel/IxLayoutSchedule.h"

[
    default(IxLayoutSchedule),
    threading(free),
    uuid("508C116C-8F6F-45c9-8230-DE742853D7FB"),
    coclass
]
class ATL_NO_VTABLE CxLayoutSchedule : public IxLayoutSchedule
{
    typedef std::multimap<INT, CComPtr<IxView> > VIEWMAP;
    typedef std::set<ULONGLONG> ULLSET;
public:
    CxLayoutSchedule();
    virtual ~CxLayoutSchedule();

public:
    // interface of IxLayoutSchedule
    HRESULT AddView(IxView* pView);
    HRESULT Layout();

protected:
    //HRESULT _add_view(IxView* pView);

protected:
    VIEWMAP     m_mapViews;
    ULLSET      m_setViews;
    bool        m_bInLayoutCircle;
};